$(document).ready(function(){
	$("#loginBtn").click(login);
	$("#regBtn").click(reg);
	$("input[name='mobile']").change(exist);
	$("input").click(clearErrMsg);
});

/**
 * 发送验证码
 */
//定义一个60秒计时器变量
var countdown=60;
function sendVc() {
	// 判断手机号是否存在
	var mobile = $("input[name='mobile']").val();
	if(!(/1[3-9]{1}[0-9]{9}/.test(mobile))){
		$(".login-error-msg").html("手机号输入错误");
		return;
	}
	if($("input[name='mobile']").attr("exist") == "true") {
		$(".login-error-msg").html("此手机号已经被注册");
		return;
	}

	var op = $("form").attr("op");
	// 忘记密码和注册验证码不一样
	var url = "/regVc.html";
	switch(op) {
		case "reg":
			url = "/regVc.html";
			break;
		case "forget":
			url = "/pwdVc.html";
			break;
	}
	
	$.ajax({type:"POST", url: url,
		data: {phone: mobile},
		dataType: "json",
		beforeSend : function() {
			// 设置点击事件不可用
			$("#sendValidateCodeBtn").unbind("click");
		}, success: function(data) {
			if(data && data.code == 1) {
				setTime();
				$("#sendValidateCodeBtn").removeClass("yellow-color").addClass("gray-color");
			} else {
				bindSendVcClick();
			}
		}, error : function() {
			bindSendVcClick();
		}
	});
}

function bindSendVcClick() {
	$("#sendValidateCodeBtn").click(sendVc).removeClass("gray-color").addClass("yellow-color");
}

//构造一个倒计时函数叫settime
function setTime() {
    //开始判断倒计时是否为0
    if (countdown == 0) {
    	bindSendVcClick();
    	$("#sendValidateCodeBtn").val("获取验证码");
    	countdown = 60;
        return;
    } else {
    	// 开始倒计时
    	countdown--; 
		$("#sendValidateCodeBtn").val(countdown+"秒后获取");
    } 
  //过1秒后执行倒计时函数
  setTimeout(function() {setTime()},1000)
}

/**
 * 点击登录按钮的事件触发<br>
 * 如果是登录页面，则使用手机号和密码登录<br>
 * 如果是注册页面，则跳转到登录页面
 */
function login() {
	var op = $("form").attr("op");
	switch(op) {
		case "reg":
		case "forget":
			window.location.href = "/login.html";
			break;
		case "login":
			// 校验用户名密码长度
			validateForm(op) && $("form").submit();
			break;
	}
}
/**
 * 点击注册按钮的事件触发<br>
 * 如果是注册页面，则使用手机号和密码注册<br>
 * 如果是登录页面，则跳转到注册页面
 */
function reg() {
	var op = $("form").attr("op");
	switch(op) {
		case "reg":
			// 校验用户名密码长度
			validateForm(op) && $("form").submit();
			break;
		case "forget":
			// 校验用户名密码长度
			validateForm(op) && $("form").submit();
			break;
		case "login":
			window.location.href = "/reg.html";
			break;
	}
}
/**
 * Form校验
 * @param op
 * @returns {Boolean}
 */
function validateForm(op) {
	var mobile = $("input[name='mobile']").val();
	var password = $("input[name='password']").val();
	var errors = [];
	var rs = true;
	var i = 1;
	if(!(/1[3-9]{1}[0-9]{9}/.test(mobile))){
		errors.push(i + "、手机号输入错误");
		i++;
		rs = false;
	}
	if(6 > password.length || password.length > 20){
		errors.push(i + "、密码不能为空，且长度为6~20位");
		i++;
		rs = false;
	}
	
	if(op == "reg" || op == "forget") {
		// 判断用户是否存在
		if($("input[name='mobile']").attr("exist") == "true") {
			errors.push(i + "、此手机号已经被注册");
			i++;
			rs = false;
		}
		var repwd = $("#repwd").val();
		if(password != repwd) {
			errors.push(i + "、两次密码不一致");
			i++;
			rs = false;
		}
	}
	$(".login-error-msg").html(errors.join("<br>"));
	return rs;
}
/**
 * 判断输入的手机号是否已经注册
 */
function exist() {
	var op = $("form").attr("op");
	var mobile = $("input[name='mobile']");
	if(op == "login") return false;
	if(op == "forget") {
		mobile.attr("exist", "false");
		bindSendVcClick();
		return false;
	}

	mobile.attr("exist", "true");// 这样是防止网络延迟，导致发送可以点
	$.ajax({type:"POST", url: "/user/exist.html",
		data: {mobile: mobile.val()},
		dataType: "json", 
		success: function(data) {
			if(data && data == true) {
				$(".login-error-msg").html("此手机号已经被注册！");
				mobile.attr("exist", "true");
			} else {
				bindSendVcClick();
				mobile.attr("exist", "false");
			}
		}
	});
}
/**
 * 清空错误信息
 */
function clearErrMsg() {
	$(".login-error-msg").html("");
}
